package org.agridata.akvisualization.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.agridata.akvisualization.doMain.entity.Brucellosis;
import org.agridata.akvisualization.doMain.entity.Pestilence;
import org.agridata.akvisualization.doMain.vo.PestilenceVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface DiseaseSurveillanceMapper {
    /**
     * 根据日期查询当月是否导入数据
     * @param dates
     * @return
     */
    @DS("first")
    List<Pestilence> selectPestilenceByDates(@Param("dates") String dates);

    /**
     * 存在数据删除
     * @param pestilence
     */
    @DS("first")
    void deletePestilence(@Param("list") List<Pestilence> pestilence);

    /**
     * 导入疫病数据
     * @param pestilenceVo
     */
    @DS("first")
    void insertPestilence(Pestilence pestilenceVo);

    /**
     * 分页列表
     * @param page
     * @param pestilence
     * @return
     */
    @DS("first")
    Page<PestilenceVo> selectDiseaseListPage(@Param("page") Page<PestilenceVo> page,@Param("pestilence") String pestilence);

    /**
     * 柱状图查询
     * @param type
     * @return
     */
    @DS("first")
    List<Map<String,Object>> selectPestilenceVoList(@Param("type") Integer type);

    /**
     * 查询是否有同年同半年数据
     * @param category
     * @return
     */
    @DS("first")
    List<Brucellosis> selectBrucellosisByCategory(@Param("category") String category);

    /**
     * 删除同年数据
     * @param list
     */
    @DS("first")
    void deleteBrucellosis(@Param("list") List<Brucellosis> list);

    /**
     *导入布病
     * @param brucellosis
     */
    @DS("first")
    void insertBrucellosis(Brucellosis brucellosis);

    /**
     * 布病列表查询无参数
     * @return
     */
    @DS("first")
    List<Brucellosis> selectBrucellosisList();

    /**
     * 疫病可视化首页查询
     * @return
     */
    @DS("first")
    List<Map<String, Object>> selectHomePageByNewDate();

    Page<PestilenceVo> selectDiseaseListJiLu(@Param("page") Page<PestilenceVo> page,@Param("date") String date);

    Page<PestilenceVo> selectBrucellosisJiLu(@Param("page")Page<PestilenceVo> page,@Param("date") String date);
}
